iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
佛心分享-SideProject30

從0開始—初階程式語言學習者的必經之路系列 第 9

DAY9 一起玩才好玩~增加多人模式

  • 分享至 

  • xImage
  •  

DAY8我們介紹了許多建議如提示、計分等,今天就利用昨天介紹的第五點介紹今天使用及延伸的程式碼!

目錄
1.使用語法
2.程式碼呈現

1 使用語法

  1. import 語法:
    /import java.util.Scanner; 用於導入 Scanner 類,以便從控制台讀取用戶輸入。

  2. 變數宣告與初始化:
    /int player1Guess, player2Guess; 宣告兩個整數變數,用於存儲玩家1和玩家2的猜測值。

/int player1Attempts = 0, player2Attempts = 0; 宣告並初始化記錄玩家猜測次數的變數。

/int target = (int) (Math.random() * 100 + 1); 用於生成一個1到100之間的隨機數,並將其賦值給 target 變數。

  1. Scanner 類:

/Scanner sc = new Scanner(System.in); 建立一個 Scanner 物件,用來從控制台讀取使用者輸入。

  1. while 迴圈:

/while (!isGuessed) { ... } 是一個迴圈結構,該迴圈會持續執行內部的程式碼,直到 isGuessed 變為 true。

/用於實現遊戲的重複猜測邏輯,讓兩個玩家輪流進行猜測。

  1. 條件判斷 (if-else 語句):

/if (player1Guess == target) { ... } else if (player1Guess > target) { ... } else { ... }

/用於判斷玩家的猜測是否正確,並提供相應的反饋(如「數字太大」或「數字太小」)。

/if (player1Attempts < player2Attempts) { ... } else if (player2Attempts < player1Attempts) { ... } else { ... }

  1. break 語句:

/break; 用於跳出 while 迴圈,當某位玩家猜中目標數字時,遊戲即刻結束。

  1. 布林變數:

/boolean isGuessed = false; 用於控制迴圈是否應該繼續。當某位玩家猜中數字時,該變數被設置為 true,從而結束迴圈。


2.程式碼呈現

,,,
import java.util.Scanner;

public class Ch7_5_Multiplayer {
public static void main(String[] args) {
int target; // 宣告目標數字
int player1Guess, player2Guess; // 宣告兩個玩家的猜測變數
int player1Attempts = 0, player2Attempts = 0; // 記錄每個玩家的猜測次數

    Scanner sc = new Scanner(System.in);
    target = (int) (Math.random() * 100 + 1); // 產生1~100的隨機數字
    
    boolean isGuessed = false;
    
    // 玩家輪流猜測直到其中一位猜中
    while (!isGuessed) {
        // 玩家1猜測
        System.out.print("玩家1,請輸入猜測值 => ");
        player1Guess = sc.nextInt();
        player1Attempts++;
        if (player1Guess == target) {
            System.out.println("玩家1 猜中數字: " + target + ",共用了 " + player1Attempts + " 次!");
            isGuessed = true;
            break;
        } else if (player1Guess > target) {
            System.out.println("數字太大!");
        } else {
            System.out.println("數字太小!");
        }
        
        // 玩家2猜測
        System.out.print("玩家2,請輸入猜測值 => ");
        player2Guess = sc.nextInt();
        player2Attempts++;
        if (player2Guess == target) {
            System.out.println("玩家2 猜中數字: " + target + ",共用了 " + player2Attempts + " 次!");
            isGuessed = true;
            break;
        } else if (player2Guess > target) {
            System.out.println("數字太大!");
        } else {
            System.out.println("數字太小!");
        }
    }
    
    // 顯示最終結果
    if (player1Attempts < player2Attempts) {
        System.out.println("玩家1 獲勝!");
    } else if (player2Attempts < player1Attempts) {
        System.out.println("玩家2 獲勝!");
    } else {
        System.out.println("平手!");
    }
}

}

但光看這段程式碼是不是覺得不夠完整?像是好像遊戲進行後只能使用一次?多人模式不夠完?以下可以在基礎上進一步延伸,例如:

/增加更多玩家:將玩家數量擴展到三人或更多。
/設置回合數限制:限制每個玩家的猜測次數,如果在一定回合數內無人猜中,則遊戲平局。
/允許重新開始遊戲:在一局遊戲結束後,允許玩家選擇重新開始遊戲。


上一篇
DAY8太初階?延伸前天的數字遊戲!
下一篇
DAY10新增遊戲功能-for迴圈及其他語法
系列文
從0開始—初階程式語言學習者的必經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言